/**全局通信接口 */
var GHttp = {  

    /**微信登录的token */
    token: "",
    
    /**主要用来获取服务器数据
     * url 服务器连接地址
     * callback 获取信息成功后的回调函数
     */
    Get(url, callback){  
        var xhr = cc.loader.getXMLHttpRequest();  
        xhr.onreadystatechange = function () {  
            if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {  
                var respone = xhr.responseText;
                var res = JSON.parse(respone);
                if (res.code == 1) {//token过期，重新请求
                    GHttp.Get(url, callback);
                } else {
                    callback(res);
                }
            }  
        };  
        xhr.open("GET", url, true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        if (this.token) {
            xhr.setRequestHeader('Authorization', this.token);
        }else{
            //console.error("token还没有初始化！！！");
        }
        xhr.timeout = 5000;
        xhr.send();
    },  
  
    /**主要用来上传数据 
     * url 服务器连接地址
     * data 要上传的数据
     * cbSuccess 成功上传数据后的回调函数
     * cbFail 失败后的回调函数
    */
    Post(url, data, cbSuccess, cbFail){
        var xhr = cc.loader.getXMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
                var respone = xhr.responseText;
                if (cbSuccess != null) {
                    var res = JSON.parse(respone);
                    if (res.code == 1) {//token过期，重新请求
                        data.refresh = true;
                        GHttp.Post(url, data, cbSuccess, cbFail);
                    } else {
                        cbSuccess(res);
                    }
                }
            } else {
                if (cbFail!=null) {
                    cbFail();
                }
            }
        };
        xhr.open("POST", url, true);
        xhr.setRequestHeader('Content-Type', 'application/json'); 
        xhr.setRequestHeader('Access-Control-Allow-Origin','*'); 
        if (this.token) {
            xhr.setRequestHeader('Authorization', this.token);
        }else{
            //console.error("token还没有初始化！！！");
        }
        xhr.timeout = 5000;
        xhr.ontimeout = function(){
            xhr.abort();
            console.error("请求超时了");
        };
        var flag = false;
        
        xhr.onerror = function () {
            if (!flag) {
                flag = true;
                console.log("状态错误:",xhr.status);
            }
        }
        data = JSON.stringify(data);
        xhr.send(data);
    }
};  

window.GHttp = GHttp;